home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 July: Mac OS SDK / Dev.CD Jul 99 SDK1.toast / Development Kits / Mac OS / Interfaces&Libraries / Universal / Interfaces / PInterfaces / FileTransfers.p < prev    next >
Encoding:
Text File  |  1998-08-17  |  12.4 KB  |  366 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        FileTransfers.p
  3.  
  4.      Contains:    CommToolbox File Transfer Manager Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Release:    Universal Interfaces 3.2
  8.  
  9.      Copyright:    © 1988-1998 by Apple Computer, Inc., all rights reserved
  10.  
  11.      Bugs?:        For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. }
  17. {$IFC UNDEFINED UsingIncludes}
  18. {$SETC UsingIncludes := 0}
  19. {$ENDC}
  20.  
  21. {$IFC NOT UsingIncludes}
  22.  UNIT FileTransfers;
  23.  INTERFACE
  24. {$ENDC}
  25.  
  26. {$IFC UNDEFINED __FILETRANSFERS__}
  27. {$SETC __FILETRANSFERS__ := 1}
  28.  
  29. {$I+}
  30. {$SETC FileTransfersIncludes := UsingIncludes}
  31. {$SETC UsingIncludes := 1}
  32.  
  33. {$IFC UNDEFINED __CONDITIONALMACROS__}
  34. {$I ConditionalMacros.p}
  35. {$ENDC}
  36. {$IFC UNDEFINED __STANDARDFILE__}
  37. {$I StandardFile.p}
  38. {$ENDC}
  39. {$IFC UNDEFINED __CTBUTILITIES__}
  40. {$I CTBUtilities.p}
  41. {$ENDC}
  42. {$IFC UNDEFINED __CONNECTIONS__}
  43. {$I Connections.p}
  44. {$ENDC}
  45. {$IFC UNDEFINED __FILES__}
  46. {$I Files.p}
  47. {$ENDC}
  48. {$IFC UNDEFINED __TERMINALS__}
  49. {$I Terminals.p}
  50. {$ENDC}
  51.  
  52.  
  53. {$PUSH}
  54. {$ALIGN MAC68K}
  55. {$LibExport+}
  56.  
  57.  
  58. CONST
  59.     curFTVersion                = 2;                            {  current file transfer manager version }
  60.  
  61.                                                                 {  FTErr     }
  62.     ftGenericError                = -1;
  63.     ftNoErr                        = 0;
  64.     ftRejected                    = 1;
  65.     ftFailed                    = 2;
  66.     ftTimeOut                    = 3;
  67.     ftTooManyRetry                = 4;
  68.     ftNotEnoughDSpace            = 5;
  69.     ftRemoteCancel                = 6;
  70.     ftWrongFormat                = 7;
  71.     ftNoTools                    = 8;
  72.     ftUserCancel                = 9;
  73.     ftNotSupported                = 10;
  74.  
  75.  
  76. TYPE
  77.     FTErr                                = OSErr;
  78.  
  79. CONST
  80.     ftIsFTMode                    = $01;
  81.     ftNoMenus                    = $02;
  82.     ftQuiet                        = $04;
  83.     ftConfigChanged                = $10;
  84.     ftSucc                        = $80;
  85.  
  86.  
  87. TYPE
  88.     FTFlags                                = UInt32;
  89.  
  90. CONST
  91.     ftSameCircuit                = $01;
  92.     ftSendDisable                = $02;
  93.     ftReceiveDisable            = $04;
  94.     ftTextOnly                    = $08;
  95.     ftNoStdFile                    = $10;
  96.     ftMultipleFileSend            = $20;
  97.  
  98.  
  99. TYPE
  100.     FTAttributes                        = UInt16;
  101.  
  102. CONST
  103.     ftReceiving                    = 0;
  104.     ftTransmitting                = 1;
  105.     ftFullDuplex                = 2;                            {  (16) added ftFullDuplex bit. }
  106.  
  107.  
  108. TYPE
  109.     FTDirection                            = UInt16;
  110. {$IFC TYPED_FUNCTION_POINTERS}
  111.     FileTransferDefProcPtr = FUNCTION(hTerm: TermHandle; msg: INTEGER; p1: LONGINT; p2: LONGINT; p3: LONGINT): LONGINT;
  112. {$ELSEC}
  113.     FileTransferDefProcPtr = ProcPtr;
  114. {$ENDC}
  115.  
  116. {    application routines type definitions }
  117.     FTRecordPtr = ^FTRecord;
  118.     FTPtr                                = ^FTRecord;
  119.     FTHandle                            = ^FTPtr;
  120. {$IFC TYPED_FUNCTION_POINTERS}
  121.     FileTransferReadProcPtr = FUNCTION(VAR count: UInt32; pData: Ptr; refCon: LONGINT; fileMsg: INTEGER): OSErr;
  122. {$ELSEC}
  123.     FileTransferReadProcPtr = ProcPtr;
  124. {$ENDC}
  125.  
  126. {$IFC TYPED_FUNCTION_POINTERS}
  127.     FileTransferWriteProcPtr = FUNCTION(VAR count: UInt32; pData: Ptr; refCon: LONGINT; fileMsg: INTEGER): OSErr;
  128. {$ELSEC}
  129.     FileTransferWriteProcPtr = ProcPtr;
  130. {$ENDC}
  131.  
  132. {$IFC TYPED_FUNCTION_POINTERS}
  133.     FileTransferSendProcPtr = FUNCTION(thePtr: Ptr; theSize: LONGINT; refCon: LONGINT; channel: CMChannel; flag: CMFlags): Size;
  134. {$ELSEC}
  135.     FileTransferSendProcPtr = ProcPtr;
  136. {$ENDC}
  137.  
  138. {$IFC TYPED_FUNCTION_POINTERS}
  139.     FileTransferReceiveProcPtr = FUNCTION(thePtr: Ptr; theSize: LONGINT; refCon: LONGINT; channel: CMChannel; VAR flag: CMFlags): Size;
  140. {$ELSEC}
  141.     FileTransferReceiveProcPtr = ProcPtr;
  142. {$ENDC}
  143.  
  144. {$IFC TYPED_FUNCTION_POINTERS}
  145.     FileTransferEnvironsProcPtr = FUNCTION(refCon: LONGINT; VAR theEnvirons: ConnEnvironRec): OSErr;
  146. {$ELSEC}
  147.     FileTransferEnvironsProcPtr = ProcPtr;
  148. {$ENDC}
  149.  
  150. {$IFC TYPED_FUNCTION_POINTERS}
  151.     FileTransferNotificationProcPtr = PROCEDURE(hFT: FTHandle; {CONST}VAR pFSSpec: FSSpec);
  152. {$ELSEC}
  153.     FileTransferNotificationProcPtr = ProcPtr;
  154. {$ENDC}
  155.  
  156. {$IFC TYPED_FUNCTION_POINTERS}
  157.     FileTransferChooseIdleProcPtr = PROCEDURE;
  158. {$ELSEC}
  159.     FileTransferChooseIdleProcPtr = ProcPtr;
  160. {$ENDC}
  161.  
  162.     FileTransferDefUPP = UniversalProcPtr;
  163.     FileTransferReadUPP = UniversalProcPtr;
  164.     FileTransferWriteUPP = UniversalProcPtr;
  165.     FileTransferSendUPP = UniversalProcPtr;
  166.     FileTransferReceiveUPP = UniversalProcPtr;
  167.     FileTransferEnvironsUPP = UniversalProcPtr;
  168.     FileTransferNotificationUPP = UniversalProcPtr;
  169.     FileTransferChooseIdleUPP = UniversalProcPtr;
  170.     FTRecord = RECORD
  171.         procID:                    INTEGER;
  172.         flags:                    FTFlags;
  173.         errCode:                FTErr;
  174.         refCon:                    LONGINT;
  175.         userData:                LONGINT;
  176.         defProc:                FileTransferDefUPP;
  177.         config:                    Ptr;
  178.         oldConfig:                Ptr;
  179.         environsProc:            FileTransferEnvironsUPP;
  180.         reserved1:                LONGINT;
  181.         reserved2:                LONGINT;
  182.         ftPrivate:                Ptr;
  183.         sendProc:                FileTransferSendUPP;
  184.         recvProc:                FileTransferReceiveUPP;
  185.         writeProc:                FileTransferWriteUPP;
  186.         readProc:                FileTransferReadUPP;
  187.         owner:                    WindowPtr;
  188.         direction:                FTDirection;
  189.         theReply:                SFReply;
  190.         writePtr:                LONGINT;
  191.         readPtr:                LONGINT;
  192.         theBuf:                    Ptr;
  193.         bufSize:                LONGINT;
  194.         autoRec:                Str255;
  195.         attributes:                FTAttributes;
  196.     END;
  197.  
  198.     FTCompletionKind                    = UInt16;
  199.  
  200. CONST
  201.                                                                 {  FTReadProc messages  }
  202.     ftReadOpenFile                = 0;                            {  count = forkFlags, buffer = pblock from PBGetFInfo  }
  203.     ftReadDataFork                = 1;
  204.     ftReadRsrcFork                = 2;
  205.     ftReadAbort                    = 3;
  206.     ftReadComplete                = 4;
  207.     ftReadSetFPos                = 6;                            {  count = forkFlags, buffer = pBlock same as PBSetFPos  }
  208.     ftReadGetFPos                = 7;                            {  count = forkFlags, buffer = pBlock same as PBGetFPos  }
  209.  
  210.                                                                 {  FTWriteProc messages  }
  211.     ftWriteOpenFile                = 0;                            {  count = forkFlags, buffer = pblock from PBGetFInfo  }
  212.     ftWriteDataFork                = 1;
  213.     ftWriteRsrcFork                = 2;
  214.     ftWriteAbort                = 3;
  215.     ftWriteComplete                = 4;
  216.     ftWriteFileInfo                = 5;
  217.     ftWriteSetFPos                = 6;                            {  count = forkFlags, buffer = pBlock same as PBSetFPos  }
  218.     ftWriteGetFPos                = 7;                            {  count = forkFlags, buffer = pBlock same as PBGetFPos  }
  219.  
  220.                                                                 {     fork flags  }
  221.     ftOpenDataFork                = 1;
  222.     ftOpenRsrcFork                = 2;
  223.  
  224.     uppFileTransferDefProcInfo = $0000FEF0;
  225.     uppFileTransferReadProcInfo = $00002FE0;
  226.     uppFileTransferWriteProcInfo = $00002FE0;
  227.     uppFileTransferSendProcInfo = $0000AFF0;
  228.     uppFileTransferReceiveProcInfo = $0000EFF0;
  229.     uppFileTransferEnvironsProcInfo = $000003E0;
  230.     uppFileTransferNotificationProcInfo = $000003C0;
  231.     uppFileTransferChooseIdleProcInfo = $00000000;
  232.  
  233. FUNCTION NewFileTransferDefProc(userRoutine: FileTransferDefProcPtr): FileTransferDefUPP;
  234.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  235.     INLINE $2E9F;
  236.     {$ENDC}
  237.  
  238. FUNCTION NewFileTransferReadProc(userRoutine: FileTransferReadProcPtr): FileTransferReadUPP;
  239.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  240.     INLINE $2E9F;
  241.     {$ENDC}
  242.  
  243. FUNCTION NewFileTransferWriteProc(userRoutine: FileTransferWriteProcPtr): FileTransferWriteUPP;
  244.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  245.     INLINE $2E9F;
  246.     {$ENDC}
  247.  
  248. FUNCTION NewFileTransferSendProc(userRoutine: FileTransferSendProcPtr): FileTransferSendUPP;
  249.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  250.     INLINE $2E9F;
  251.     {$ENDC}
  252.  
  253. FUNCTION NewFileTransferReceiveProc(userRoutine: FileTransferReceiveProcPtr): FileTransferReceiveUPP;
  254.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  255.     INLINE $2E9F;
  256.     {$ENDC}
  257.  
  258. FUNCTION NewFileTransferEnvironsProc(userRoutine: FileTransferEnvironsProcPtr): FileTransferEnvironsUPP;
  259.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  260.     INLINE $2E9F;
  261.     {$ENDC}
  262.  
  263. FUNCTION NewFileTransferNotificationProc(userRoutine: FileTransferNotificationProcPtr): FileTransferNotificationUPP;
  264.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  265.     INLINE $2E9F;
  266.     {$ENDC}
  267.  
  268. FUNCTION NewFileTransferChooseIdleProc(userRoutine: FileTransferChooseIdleProcPtr): FileTransferChooseIdleUPP;
  269.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  270.     INLINE $2E9F;
  271.     {$ENDC}
  272.  
  273. FUNCTION CallFileTransferDefProc(hTerm: TermHandle; msg: INTEGER; p1: LONGINT; p2: LONGINT; p3: LONGINT; userRoutine: FileTransferDefUPP): LONGINT;
  274.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  275.     INLINE $205F, $4E90;
  276.     {$ENDC}
  277.  
  278. FUNCTION CallFileTransferReadProc(VAR count: UInt32; pData: Ptr; refCon: LONGINT; fileMsg: INTEGER; userRoutine: FileTransferReadUPP): OSErr;
  279.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  280.     INLINE $205F, $4E90;
  281.     {$ENDC}
  282.  
  283. FUNCTION CallFileTransferWriteProc(VAR count: UInt32; pData: Ptr; refCon: LONGINT; fileMsg: INTEGER; userRoutine: FileTransferWriteUPP): OSErr;
  284.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  285.     INLINE $205F, $4E90;
  286.     {$ENDC}
  287.  
  288. FUNCTION CallFileTransferSendProc(thePtr: Ptr; theSize: LONGINT; refCon: LONGINT; channel: CMChannel; flag: CMFlags; userRoutine: FileTransferSendUPP): Size;
  289.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  290.     INLINE $205F, $4E90;
  291.     {$ENDC}
  292.  
  293. FUNCTION CallFileTransferReceiveProc(thePtr: Ptr; theSize: LONGINT; refCon: LONGINT; channel: CMChannel; VAR flag: CMFlags; userRoutine: FileTransferReceiveUPP): Size;
  294.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  295.     INLINE $205F, $4E90;
  296.     {$ENDC}
  297.  
  298. FUNCTION CallFileTransferEnvironsProc(refCon: LONGINT; VAR theEnvirons: ConnEnvironRec; userRoutine: FileTransferEnvironsUPP): OSErr;
  299.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  300.     INLINE $205F, $4E90;
  301.     {$ENDC}
  302.  
  303. PROCEDURE CallFileTransferNotificationProc(hFT: FTHandle; {CONST}VAR pFSSpec: FSSpec; userRoutine: FileTransferNotificationUPP);
  304.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  305.     INLINE $205F, $4E90;
  306.     {$ENDC}
  307.  
  308. PROCEDURE CallFileTransferChooseIdleProc(userRoutine: FileTransferChooseIdleUPP);
  309.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  310.     INLINE $205F, $4E90;
  311.     {$ENDC}
  312.  
  313. FUNCTION InitFT: FTErr;
  314. FUNCTION FTGetVersion(hFT: FTHandle): Handle;
  315. FUNCTION FTGetFTVersion: INTEGER;
  316. FUNCTION FTNew(procID: INTEGER; flags: FTFlags; sendProc: FileTransferSendUPP; recvProc: FileTransferReceiveUPP; readProc: FileTransferReadUPP; writeProc: FileTransferWriteUPP; environsProc: FileTransferEnvironsUPP; owner: WindowPtr; refCon: LONGINT; userData: LONGINT): FTHandle;
  317. PROCEDURE FTDispose(hFT: FTHandle);
  318. FUNCTION FTStart(hFT: FTHandle; direction: FTDirection; {CONST}VAR fileInfo: SFReply): FTErr;
  319. FUNCTION FTAbort(hFT: FTHandle): FTErr;
  320. FUNCTION FTSend(hFT: FTHandle; numFiles: INTEGER; pFSSpec: FSSpecArrayPtr; notifyProc: FileTransferNotificationUPP): FTErr;
  321. FUNCTION FTReceive(hFT: FTHandle; pFSSpec: FSSpecPtr; notifyProc: FileTransferNotificationUPP): FTErr;
  322. PROCEDURE FTExec(hFT: FTHandle);
  323. PROCEDURE FTActivate(hFT: FTHandle; activate: BOOLEAN);
  324. PROCEDURE FTResume(hFT: FTHandle; resume: BOOLEAN);
  325. FUNCTION FTMenu(hFT: FTHandle; menuID: INTEGER; item: INTEGER): BOOLEAN;
  326. FUNCTION FTChoose(VAR hFT: FTHandle; where: Point; idleProc: FileTransferChooseIdleUPP): INTEGER;
  327. PROCEDURE FTEvent(hFT: FTHandle; {CONST}VAR theEvent: EventRecord);
  328. FUNCTION FTValidate(hFT: FTHandle): BOOLEAN;
  329. PROCEDURE FTDefault(VAR theConfig: Ptr; procID: INTEGER; allocate: BOOLEAN);
  330. FUNCTION FTSetupPreflight(procID: INTEGER; VAR magicCookie: LONGINT): Handle;
  331. PROCEDURE FTSetupSetup(procID: INTEGER; theConfig: UNIV Ptr; count: INTEGER; theDialog: DialogPtr; VAR magicCookie: LONGINT);
  332. FUNCTION FTSetupFilter(procID: INTEGER; theConfig: UNIV Ptr; count: INTEGER; theDialog: DialogPtr; VAR theEvent: EventRecord; VAR theItem: INTEGER; VAR magicCookie: LONGINT): BOOLEAN;
  333. PROCEDURE FTSetupItem(procID: INTEGER; theConfig: UNIV Ptr; count: INTEGER; theDialog: DialogPtr; VAR theItem: INTEGER; VAR magicCookie: LONGINT);
  334. PROCEDURE FTSetupXCleanup(procID: INTEGER; theConfig: UNIV Ptr; count: INTEGER; theDialog: DialogPtr; OKed: BOOLEAN; VAR magicCookie: LONGINT);
  335. PROCEDURE FTSetupPostflight(procID: INTEGER);
  336. FUNCTION FTGetConfig(hFT: FTHandle): Ptr;
  337. FUNCTION FTSetConfig(hFT: FTHandle; thePtr: UNIV Ptr): INTEGER;
  338. FUNCTION FTIntlToEnglish(hFT: FTHandle; inputPtr: UNIV Ptr; VAR outputPtr: Ptr; language: INTEGER): FTErr;
  339. {  (16) chenged OSErr to FTErr }
  340. FUNCTION FTEnglishToIntl(hFT: FTHandle; inputPtr: UNIV Ptr; VAR outputPtr: Ptr; language: INTEGER): FTErr;
  341. {  (16) chenged OSErr to FTErr }
  342. PROCEDURE FTGetToolName(procID: INTEGER; VAR name: Str255);
  343. FUNCTION FTGetProcID(name: Str255): INTEGER;
  344. PROCEDURE FTSetRefCon(hFT: FTHandle; refCon: LONGINT);
  345. FUNCTION FTGetRefCon(hFT: FTHandle): LONGINT;
  346. PROCEDURE FTSetUserData(hFT: FTHandle; userData: LONGINT);
  347. FUNCTION FTGetUserData(hFT: FTHandle): LONGINT;
  348. PROCEDURE FTGetErrorString(hFT: FTHandle; id: INTEGER; VAR errMsg: Str255);
  349. {
  350.     These Async routines were added to InterfaceLib in System 7.5
  351. }
  352. FUNCTION FTSendAsync(hFT: FTHandle; numFiles: INTEGER; pFSSpec: FSSpecArrayPtr; notifyProc: FileTransferNotificationUPP): FTErr;
  353. FUNCTION FTReceiveAsync(hFT: FTHandle; pFSSpec: FSSpecPtr; notifyProc: FileTransferNotificationUPP): FTErr;
  354. FUNCTION FTCompletionAsync(hFT: FTHandle; completionCall: FTCompletionKind): FTErr;
  355.  
  356. {$ALIGN RESET}
  357. {$POP}
  358.  
  359. {$SETC UsingIncludes := FileTransfersIncludes}
  360.  
  361. {$ENDC} {__FILETRANSFERS__}
  362.  
  363. {$IFC NOT UsingIncludes}
  364.  END.
  365. {$ENDC}
  366.